The present invention relates to data communications and more particularly, to an adaptive clock recovery method and system implemented at a receiving end point of a data connection.
In order to transport time-sensitive data over high speed asynchronous telecommunication networks, such as those based on Asynchronous Transfer Mode technology, it is necessary to adapt the data flow at the receiver with the data flow through the network. For the support of asynchronous CBR services with clocks not locked to a network clock, ITU recommendation I.363.1 provides two methods. A Synchronous Residual Time Stamp (SRTS) method is provided for those data services which must satisfy known jitter (also called Cell Delay Variation or CDV) and wander requirements. An adaptive clock method is provided for those services which must satisfy jitter but not wander requirements. The term xe2x80x9cwanderxe2x80x9d is used to identify slow changes in clock rates which may occur over long periods of time due primarily to the effect of changing environmental conditions, such as rising or falling ambient temperatures, on clocking systems.
The Synchronous Residual Time Stamp (SRTS) method uses a Residual Time Stamp (RTS) to measure and convey information about the frequency difference between a common reference clock derived from the network and a service clock. The same derived network clock is assumed to be available at both the transmitting end and the receiving end. This Residual Time Stamp is transported across the network and used at the receiving end to reproduce the frequency difference.
The adaptive clock method is a general method for source clock frequency recovery performed at the receiving end of a connection. The method is based on the premise that the amount of data transmitted through the network is an indication of the system frequency. No explicit timing information is transported by the network. By averaging the amount of data received at the receiving end of a connection over a period of time, jitter effects are counteracted. The period of time used for averaging depends on the jitter characteristics of the connection.
One method of measuring the amount of data transmitted through the network over a given period of time (an observation period) is to measure the fill level of the receiver data buffer, sometimes called a PlayOut Buffer (POB), at the end of successive observation periods. The receiver writes received data into the buffer at an input frequency (sometimes referred to as a buffer source or just source frequency and then reads it out using a local (output) clock. The fill level of the buffer at the end of any given observation period depends on the fill level at the start of the time period and the difference between the input frequency and the local clock frequency during the time period.
According to known adaptive clock methods, no frequency corrections if the buffer fill level at the end of an observation period is between the upper and lower thresholds. If, however, the buffer fill level exceeds the upper threshold, the frequency of the local or output clock is increased by a predetermined amount. The local clock frequency will be repeatedly incremented by the same amount at the end of successive observation period as long as the buffer fill level exceeds the upper threshold. Eventually, the local clock frequency will become greater than the input clock frequency, causing the buffer to be emptied faster than it is filled. When the buffer fill level falls below the upper threshold, no further adjustments are made in the local clock frequency.
Similar control actions occur when the buffer fill level falls below the lower threshold, indicating that the local clock frequency is too high in comparison to the input clock frequency. Under those conditions, the local clock frequency is decremented by a fixed amount at the end of each observation period if the buffer fill level is below the lower threshold. When the local clock frequency is decremented to the point that it is lower than input frequency, the buffer will start to refill. When the buffer fill level once again exceeds the lower threshold, no further adjustments are made in the local clock frequency.
An adaptive clock method should continuously and rapidly converge the local clock frequency toward the frequency of the source (input) clock. One problem is that the prior art method described above is triggered only when the buffer fill level is found to be outside the upper and lower thresholds. No corrective actions are taken if the buffer fill level is between the two thresholds. This can lead to undesirable oscillations or delays in the converge of the input and local clock frequencies.
The present invention is an improved adaptive clock technique for use at a receiving system having a buffer to which data is written at a source frequency and from which data is read at a local clock frequency. The fill level of the buffer is measured at the end of successive observation periods. If the fill level is found to fall outside of predetermined threshold values, the local clock frequency is either increased or decreased depending on whether it is the upper threshold or the lower threshold that has been found to be exceeded. A count is maintained of the number of frequency adjustments that are performed before the buffer fill level returns to the range bounded by the two thresholds. The frequency adjustment actions are not, however, terminated simply because the buffer fill level returns to this range. A series of reverse frequency corrections are performed on the local clock once the buffer fill level returns to the range. For example, if the local clock frequency had been incremented several times to deal with a buffer filled beyond the upper threshold, the reverse frequency correction will result in the output frequency being decremented even after the buffer fill level falls below the upper threshold. The number of reverse corrections is less than the number of corrections previously made.